package com.huawei.push.controller.enity;

import com.huawei.push.android.Button;
import com.huawei.push.model.Importance;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 主要是针对华为消息提示的样式及基本元素进行设置
 */
@Component
public class MsgConfigEnity {

//  呼吸灯点亮时间间隔，格式按照“\d+\｜\d+[sS]\｜\d+.\d{1,9}\｜\d+.\d{1,9}[sS]”
    private String lightOnDuration;
//    呼吸灯熄灭时间间隔，格式按照“\d+\｜\d+[sS]\｜\d+.\d{1,9}\｜\d+.\d{1,9}[sS]
    private String lightOFFDuration;
//    消息展示时间  单位毫秒
    private Integer autoClear;
//    安卓通知栏消息优先级：LOW 一般（静默）NORMAL：重要 HIGH：非常重要
    private String importance;
// 按钮等的颜色
    private String color;
//    设置按钮
 /*name	         string	按钮名称，必填，最大长度40
  actionType	integer	按钮动作类型：0：打开应用首页；1：打开应用自定义页面；2：打开指定的网页；3：清除通知；4：分享功能；
  intentType	integer	打开自定义页面的方式：0：设置通过intent打开应用自定义页面；1：设置通过action打开应用自定义页面；当action_type为1时，该字段必填。
  intent	    string	当action_type为1，此字段按照intent_type字段设置应用页面的uri或者action.
  data	      string	最大长度1024。当字段action_type为0或1时，该字段用于在点击按钮后给应用透传数据，选填，
 格式必须为key-value形式：{“key1”:“value1”,“key2”:“value2”,…}。当action_type为4时，此字段必选，为分享的内容。*/
    private List<Button> buttons;

    public MsgConfigEnity() {
         this.autoClear =86400000;
         this.importance =Importance.LOW.getValue();
         this.lightOFFDuration="5s";
         this.lightOnDuration="3.5";
         this.color="#AACCDD";
         this.buttons=new ArrayList<>();


    }

    public MsgConfigEnity(String lightOnDuration, String lightOFFDuration, Integer autoClear, String importance, String color, List<Button> buttons) {
        this.lightOnDuration = lightOnDuration;
        this.lightOFFDuration = lightOFFDuration;
        this.autoClear = autoClear;
        this.importance = importance;
        this.color = color;
        this.buttons = buttons;
    }

    public List<Button> getButton() {

        return buttons;
    }

    public void setButton(List<Button> buttons) {

        this.buttons = buttons;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getLightOnDuration() {
        return lightOnDuration;
    }

    public void setLightOnDuration(String lightOnDuration) {
        this.lightOnDuration = lightOnDuration;
    }

    public String getLightOFFDuration() {
        return lightOFFDuration;
    }

    public void setLightOFFDuration(String lightOFFDuration) {
        this.lightOFFDuration = lightOFFDuration;
    }

    public Integer getAutoClear() {
        return autoClear;
    }

    public void setAutoClear(Integer autoClear) {
        this.autoClear = autoClear;
    }

    public String getImportance() {
        return importance;
    }

    public void setImportance(String importance) {
        this.importance = importance;
    }
}
